package com.zlzlib.vuePage.annotation.data;

import com.zlzlib.vuePage.config.FormSelectData;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 表单查询联动数据类型
 *
 * @DateTime: 2024/6/6 16:04
 * @Author zlz
 * @Version 1.0
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface FormDataField {

    /**
     * @return 是否为子类  子类联动数据没有初始值
     */
    boolean isChild() default false;

    /**
     * @return 是否为父类  父类要增加子类的获取初始化
     */
    boolean isParent() default false;

    /**
     * @return 自己数据来源类
     */
    Class<? extends FormSelectData> selfClass();

    /**
     * @return 数据查询条件
     */
    String dataFind() default "";

    /**
     * @return 自己数据名称
     */
    String dataKey() default "";

    /**
     * @return 联动子类数据来源类
     */
    Class<? extends FormSelectData> childClass();

    /**
     * @return 联动子类数据名称
     */
    String dataChildKey() default "";

    /**
     * @return 联动子类选中值的名称  用来清空子类选中数据
     */
    String dataChildValueKey() default "";

    /**
     * @return 是否添加空数据
     */
    boolean addEmpty() default false;
}
